package com.tmxk.api.days03.zjq;

import javax.swing.*;

/**
 * @BelongsProject: java-api1
 * @BelongsPackage: com.tmxk.api.days03.zjq
 * @Author: zjq
 * @CreateTime: 2022-11-30  15:33
 * @Description: TODO
 * @Version: 1.0
 */
/**
 * String StringBuffer StringBuilder 三者使用
 * 频繁操作（添加删除更新）字符串时，建议使用StringBuffer，效率高，内存占用率少
 * 跟String操作频繁字符串对比，该方式会频繁创建新的空间，存储数据，效率低，内存占用率高，浪费内存空间
 * StringBuffer和StringBuilder对字符串是相同操作
 * StringBuffer是线程安全的字符串扩展类，StringBuilder是线程非安全的字符串扩展类
 * 常识：在项目中，频繁操作字符串时，使用StringBuffer，处理数据效率高，内存占用率也少
 *
 **/
public class StringOperDemo {
    //成员变量，成员变量是存储在堆中
    String str = "abc";
    String str1 = "adc";
    String str2 = new String("abc");
    String str3 = new String("abc");


    public void method(){
        System.out.println(str == str1);//TRUE
        System.out.println(str == str2);//FALSE
        System.out.println(str2 == str3);//FALSE
        System.out.println(str2.intern() == str3.intern());//TRUE

        System.out.println("比较str和str123结果");
        str = str.concat("123");
        String str123 = "abc123";
        System.out.println("str");
        System.out.println(str.equals(str123));//true
        System.out.println(str == str123);//false
    }


}

